Vasil Kirkov (born 13 March 1999) is a Bulgarian-born American professional tennis player. He has a career high ATP doubles ranking of world No. 59 achieved on 2 February 2026 and a career high singles ranking of No. 439 achieved on 22 November 2021. He has reached one ATP doubles final. Kirkov has won 11 doubles ATP Challenger Tour titles, including 7 titles in 2025, tied for the second-most titles for that season.
Kirkov made his Grand Slam doubles main draw debut at the 2017 US Open with Danny Thomas after receiving a wildcard for winning the USTA Boy's 18 National hardcourt Championships in Kalamazoo with Thomas.
In December 2019, Kirkov won the M15 in Cancun, Mexico, his first-ever ITF World Tennis Tour title as the No. 4 seed defeating No. 3 seed Nick Chappell in a close match with a scoreline of 6–7(3), 7–6(8), 7–6(1).
Kirkov won his first Challenger title at the 2023 Challenger Santa Fe partnering Chilean Matias Soto, and his second title at the 2023 Salinas Challenger partnering Alfredo Perez, after defeating Ángel Díaz Jalil and Álvaro Guillén Meza in the final. He reached the third round at the 2023 US Open after receiving a wildcard partnering Denis Kudla but lost to Ivan Dodig and Austin Krajicek.
He entered the ATP 500 2024 Mubadala Citi DC Open in Washington as a lucky loser partnering Evan King but they lost to Lloyd Glasspool and Santiago Gonzalez in the first round. He also received a wildcard in doubles for the 2024 US Open partnering Christian Harrison.
In March 2025, in Latin America, Kirkov won three back-to-back Challenger doubles titles in Santiago, Asunción, Paraguay and in Concepción, Chile partnering again with Chilean Matias Soto. Following two challenger finals in Asia, Kirkov reached the top 100 in the doubles rankings on 5 May 2025 at world No. 98. He won his eight title at the Challenger 100, the 2025 Wuxi Open, with Bart Stevens.
| {class=wikitable style="font-size:90%" !Legend |
| Grand Slam tournaments (0–0) |
| ATP Masters 1000 (0–0) |
| ATP 500 (0–0) |
| ATP 250 (0–2) |
| Hard (0–2) |
| Clay (0–0) |
| Grass (0–0) |
| Loss | 0–1 | Chengdu Open, China | 250 Series | Hard | Bart Stevens | Constantin Frantzen Robin Haase | 6–4, 3–6, 7–10 | |
| Loss | 0–2 | Stockholm Open, Sweden | 250 Series | Hard (i) | Bart Stevens | Alexander Erler Robert Galloway | 3–6, 2–6 |
| Loss | 2017 | French Open | Clay | Danny Thomas | Nicola Kuhn Zsombor Piros | 4–6, 4–6 |
| {class=wikitable style=font-size:97% !Legend |
| ATP Challenger (11–10) |
| ITF Futures (8–0) |
| Hard (4–8) |
| Clay (7–2) |
| Win | 1–0 | Santa Fe, Argentina | Challenger | Clay | Matías Soto | Ignacio Carou Ignacio Monzón | 7–6(7–3), 6–2 | |
| Win | 2–0 | Salinas, Ecuador | Challenger | Clay | Alfredo Perez | Ángel Díaz Jalil Álvaro Guillén Meza | 7–5, 7–5 | |
| Loss | 2–1 | Lexington, USA | Challenger | Hard | George Goldhoff | Eliot Spizzirri Tyler Zink | 6–4, 3–6, 8–10 | |
| Loss | 2–2 | Fairfield, US | Challenger | Hard | Denis Kudla | Evan King Reese Stalder | 5–7, 3–6 | |
| Win | 3–2 | Tenerife, Spain | Challenger | Hard | Luis David Martínez | Karol Drzewiecki Piotr Matuszewski | 3–6, 6–4, 10–3 | |
| Loss | 3–3 | Bahrain Ministry of Interior Tennis, Bahrain | Challenger | Hard | Patrik Niklas-Salminen | Petros Tsitsipas Sergio Martos Gornes | 6–3, 3–6, 8–10 | |
| Loss | 3–4 | Seoul Open, Korea | Challenger | Hard | Bart Stevens | Saketh Myneni Ramkumar Ramanathan | 4–6, 6–4, 3–10 | |
| Win | 4–4 | Kobe Challenger, Japan | Challenger | Hard (i) | Bart Stevens | Kaichi Uchida Takeru Yuzuki | 7–6(9–7), 7–5 | |
| Loss | 4–5 | Glasgow, United Kingdom | Challenger | Hard | Marcus Willis | Daniel Cukierman Joshua Paris | 7–5, 4–6, 10–12 | |
| Win | 5–5 | Santiago, Chile | Challenger | Clay | Matías Soto | Mateus Alves Luís Britto | 6–4, 6–3 | |
| Win | 6–5 | Paraguay Open, Paraguay | Challenger | Clay | Matías Soto | Mariano Kestelboim Guillermo Durán | 6–3, 6–4 | |
| Win | 7–5 | Concepción, Chile | Challenger | Clay | Matías Soto | Takeru Yuzuki Seita Watanabe | 6–2, 6–4 | |
| Loss | 7–6 | Gwangju Open, South Korea | Challenger | Hard | Bart Stevens | Ray Ho Matthew Romios | 3–6, 6–7(6–8) | |
| Loss | 7–7 | Guangzhou, China | Challenger | Hard | Bart Stevens | Ray Ho Matthew Romios | 3–6, 4–6 | |
| Win | 8–7 | Wuxi, China | Challenger | Hard | Bart Stevens | Ray Ho Matthew Romios | 3–6, 7–5, 10–6 | |
| Win | 9–7 | Neckarcup, Germany | Challenger | Clay | Bart Stevens | Jakob Schnaitter Mark Wallner | 7–6(7–5), 4–6, 10–7 | |
| Loss | 9–8 | Perugia, Italy | Challenger | Clay | Robin Haase | Romain Arneodo Manuel Guinard | 6–3, 3–6, 5–10 | |
| Win | 10–8 | Braunschweig, Germany | Challenger | Clay | Bart Stevens | Alexander Merino Christoph Negritu | 6–2, 6–3 | |
| Loss | 10–9 | Hagen, Germany | Challenger | Clay | Bart Stevens | Hendrik Jebens Albano Olivetti | 4–6, 7–6 (7–2), 8–10 | |
| Win | 11–9 | Roanne, France | Challenger | Hard (i) | Bart Stevens | Joran Vliegen Jackson Withrow | 4–6, 6–1, 10–4 | |
| Loss | 11–10 | Manama, Bahrain | Challenger | Hard | Bart Stevens | Sriram Balaji Neil Oberleitner | 6–7 (1–7), 4–6 |
|
|